import uvicorn
from fastapi import FastAPI,Query,Path
from typing import Optional,List
from pydantic import BaseModel

app = FastAPI()

'''
 与使用 Query 为查询参数声明更多的校验和元数据的方式相同，
 你也可以使用 Path 为路径参数声明相同类型的校验和元数据。我们看下如何来实现
'''
# @app.get("/items/{id}")
# def read_items(id: int = Path(..., title='id'), q: Optional[str]=Query(None,alias="item-query")):
#     results = {"item_id": id}
#     if q:
#         results.update({"q": q})
#     return results


#  我们会有这样的需求，让id大于多少才给返回，如何实现呢
@app.get("/items/")
def read_items(*, id: int = Query(..., ge=5,), q: str):
    results = {"item_id": id}
    if q:
        results.update({"q": q})
    return results


'''

而且你还可以声明数值校验：
gt：大于（greater than）
ge：大于等于（greater than or equal）
lt：小于（less than）
le：小于等于（less than or equal）
'''

if __name__ == '__main__':
    uvicorn.run(app="main:app", host="127.0.0.1", port=8000, reload=True, debug=True)
